package java8;

import com.google.common.collect.Maps;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicInteger;


/**
 * @author： pang-yun
 * @date： 2021-10-15 23:20
 * 功能目的 ：用于 Hashmap 中 computeIfAbsent ( s, function)  如果 map中 s  对应的 value 不存在  就将 function 的返回值 存入并 返回
 *
 */

public class ComputeIfAbsent {
    public static void main(String[] args) {

        //java8 实现计算功能统计字符串出现次数
        Map<String, AtomicInteger> countMap = Maps.newHashMap();
        List<String> source = Arrays.asList("hello", "world", "hello", "welcome", "hello", "hello", "welcome", "simon");
        for (String s : source) {
            countMap.computeIfAbsent(s, key -> new AtomicInteger()).getAndIncrement();
        }
        System.out.println(countMap);
    }
}
